/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package message.handler;
import java.util.*;
import net.*;
import message.*;

/**
 *
 * @author antonio
 */

/**
 * InputStrem della Socket di comunicazione con NS
 *
 * POSITION
 * AP
 * "mac"
 * "le frequenze dei 100 possibili valori dei segnali sniffati da NS ordinate secondo il valore in db del segnale"
 * "num_totale_delle_rilevazione"
 *
 * -----
 * 
 * END_POSITION
 *
 */

/**
 * Class: _MessagePositionHandler_
 * Usage: _Class ServerSniffer_ | metodo run()
 *
 * MessagePositionHandler si occupa di ricevere le info degli AP rilevati da NS 
 * in una posizione e creare per ogni AP un oggetto della classe _AccessPoint_
 * che rappresenti in memoria il singolo AP con le relative info, cioè:
 *
 * - 1 - mac
 * - 2 - segnali
 * - 3 - num_tot_segnali
 *
 * Ogni oggetto di tipo AccessPoint creato e inserito nel Vector position che 
 * quindi conterrò tutte le info di tutti gli AP rilevati in una data posizione.
 *
 * Il Vector position è passato come parametro ad un oggetto di tipo MessagePosition
 * che avrà il compito di processare queste info per identificare la posizione corrente.
 * 
 */
public class MessagePositionHandler implements MessageHandler{
    
    private Scanner inputReader;

    public boolean handle(Scanner inputReader)
    {
        this.inputReader = inputReader;

        Vector position = new Vector();  //contiene le info degli AP 
                                        //(oggetti della classe AccessPoint)
                                       //per una determinata posizione

        while(true)
        {
          String line = this.inputReader.nextLine();

          if(line.equals("END_POSITION"))
          {
              break;
          }
          else
          {
              if(line.equals("AP"))
              {
                  AccessPoint ap = new AccessPoint();

                  String mac = this.inputReader.nextLine();
                  ap.setMac(mac);

                  String signal = this.inputReader.nextLine();
                  ap.setSignal(signal);

                  String totalSignal = this.inputReader.nextLine();
                  ap.setTotalSignal(totalSignal);

                  position.add(ap);
              }
          }
        }

        MessagePosition infoPosition = new MessagePosition(position);
        

        return false;
    }

}
